class A{
    public data1: string|number = ""

    static data4:string

    printA(msg:string){
        console.debug(this.data1, msg)
    }
  
    static printLog(msg:string){
        console.log(A.data4)
    }
}

class B extends A{
    data2: string = ""
}

interface B{
    data3: string
}

class C extends B{
    constructor(v0:string, v1:string, v2:string){
        super()
        this.data2 = v1
        this.data3 = v2
        this.data1 = v0
        
    }

    fun1(params:string) {
        A.printLog(params)
        this.printA(params)
    }
}


var c = new C("ss", "sss", "sss");
